/*******************************************************************************
* 
*    Copyright(C) 2020 WINTOP All rights reserved.
* 
* File        : hal_clock.h
* Author      : BX
* Version     : V1.00
* Date        : 2020-1-1
* Description : 系统时钟
* Chip        : HC32
* History     : V1.00, 2020-1-1, bx, first version

* Disclaimer  :
*   本程序所有权归作者所有。
*   本程序仅用于演示或实现特定产品的功能，任何修改或其它目的的应用均不作保证，
*   未经作者同意不得将本程序的全部或部分用于商业目的。
*******************************************************************************/
#ifndef __HAL_GPIO_H__
#define __HAL_GPIO_H__


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// 基本操作
////////////////////////////////////////////////////////////////////////////////
void hal_gpio_set_out(en_gpio_port_t enPort, en_gpio_pin_t enPin);
void hal_gpio_set_out_l(en_gpio_port_t enPort, en_gpio_pin_t enPin);

void hal_gpio_set_in(en_gpio_port_t enPort, en_gpio_pin_t enPin);

void hal_gpio_set_od_out(en_gpio_port_t enPort, en_gpio_pin_t enPin);

void hal_gpio_set_pullup(en_gpio_port_t enPort, en_gpio_pin_t enPin, boolean_t on);
void hal_gpio_set_pulldown(en_gpio_port_t enPort, en_gpio_pin_t enPin, boolean_t on);


#define hal_gpio_setio(enPort, enPin)         Gpio_SetIO(enPort, enPin)
#define hal_gpio_clrio(enPort, enPin)          Gpio_ClrIO(enPort, enPin)
#define hal_gpio_get_input(enPort, enPin)      Gpio_GetInputIO(enPort, enPin)
#define hal_gpio_set_analog(enPort, enPin)     Gpio_SetAnalogMode(enPort, enPin)


void hal_gpio_enable_int(en_gpio_port_t enPort, en_gpio_pin_t enPin, 
                         en_gpio_irqtype_t irqtype);
void hal_gpio_disable_int(en_gpio_port_t enPort, en_gpio_pin_t enPin);

#define hal_gpio_get_status(enPort, enPin)  Gpio_GetIrqStatus(enPort, enPin)

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////


#endif /* __HAL_GPIO_H__ */
